package org.jeecg.modules.rental.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class AccountCouponVO implements Serializable {
    private static final long serialVersionUID = 1L;

	/**代金券id*/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
	/**代金券编号*/
    private String couponCode;
    private String couponCategory;
    private String categoryName;
	/**代金券拥有者*/
    private String accountId;
	/**代金券配置*/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long configId;
    private Integer num;
    /**代金券名称*/
    private String configName;
    /**使用门槛金额 0-无门槛*/
    private BigDecimal minAmount;
    /**满减金额*/
    private BigDecimal faceValue;
    /**卡券配色*/
    private String couponColor;
    /**领券时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime receiveTime;
    /**使用时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime useTime;
	/**失效日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDate expiryDate;
	/**0-未使用 1-已使用 3-已失效*/
    private String status;
	/**所属部门*/
    private String sysOrgCode;
    //支付状态（0：未支付 1：已支付）
    private String payStatus;
    @JsonSerialize(using = ToStringSerializer.class)
    private Long orderId;

}
